内联元素

内联元素指的是与行内元素,与块状元素相对应。主要包括链接,代码,强调,图片等元素。块状元素的 Markdown 语法可以参考上一篇


链接

Markdown 支持两种风格的链接: 行内链接引用链接

两种风格的链接均用中括号扩起来 [ ]。

行内链接由两部分组成,方括号[ ]括起来的链接描述,以及紧跟方括号的链接地址,地址由括弧( )包围。括弧内可以选择为该链接添加标题。例如:

   This is [an example](http://example.com/ "Title") inline link.

[This link](http://example.net/) has no title attribute.

如果想要链接到当前服务器的页面,链接地址可以是相对地址:

See my [About](/about/) page for details.   

引用类型的链接采用两对方括号进行表示,其中第一个方括号内容为链接的描述信息,第二个内容为链接的ID:

This is [an example][id] reference-style link.

然后,你需要做的是在文档的任何位置,定义 ID 所对应的链接:

[id]: http://example.com/  "Optional Title Here"

规则说明:

  • ID 由方括号包围 ,距离左边距不超过 3 个空格
  • 一个冒号
  • 一个或多个空格
  • 链接地址
  • 链接标题—可以由单引号,双引号或者括号包围起来

以下三种表达方式是等价的:

[foo]: http://example.com/  "Optional Title Here"
[foo]: http://example.com/  'Optional Title Here'
[foo]: http://example.com/  (Optional Title Here)

注意: 链接名称可以由字母,数字,空格等组成,但是链接是大小写不敏感的,即链接大小写是一样的:

[link text][a]
[link text][A]

是一样的。

关于链接也可以简写如下:

[Google][]

然后链接的定义如下:

[Google]: http://google.com/

下面是一个使用的示范:

I get 10 times more traffic from [Google] [1] than from
[Yahoo] [2] or [MSN] [3].

[1]: http://google.com/        "Google"
[2]: http://search.yahoo.com/  "Yahoo Search"
[3]: http://search.msn.com/    "MSN Search"

简写的方式如下:

I get 10 times more traffic from [Google][] than from
[Yahoo][] or [MSN][].

  [google]: http://google.com/        "Google"
  [yahoo]:  http://search.yahoo.com/  "Yahoo Search"
  [msn]:    http://search.msn.com/    "MSN Search"

为了对比写法上的区别,将行内链接的写法也贴出来:

I get 10 times more traffic from [Google](http://google.com/ "Google")
than from [Yahoo](http://search.yahoo.com/ "Yahoo Search") or
[MSN](http://search.msn.com/ "MSN Search").

由此可以看出来,引用链接的方式看起来更加利于编写和阅读。


强调

Markdown 使用 (*) 和 (_) 来标记强调的字符。单个 *_ 最终被转化为
HTML <em> 标签;两个 *_最终被转化为 HTML
<strong> 标签:

*single asterisks*

_single underscores_

**double asterisks**

__double underscores__

将会转化为:

<em>single asterisks</em>

<em>single underscores</em>

<strong>double asterisks</strong>

<strong>double underscores</strong>

注意: *_ 两侧不能有空格,否则会被当作单独字符处理。如果想要单独输出以上两个字符,则需要在字符前加 \ 做转义。


代码

我们可以使用两个 (` ) 来包围表示一段代码:

Use the `printf()` function.

将会转化为:

<p>Use the <code>printf()</code> function.</p>

在代码块中使用 `,必需在代码块起始和末尾加入多个`:

``There is a literal backtick (`) here.``

在代码块内部,符合和尖括号会被自动转义为 HTML 实体:

Please don't use any `<blink>` tags.

会被转化为:

<p>Please don't use any <code>&lt;blink&gt;</code> tags.</p>

图片

Markdown 中的图片语法与链接类似,也分为行内图片和引用两种。

行内图片语法如下:

![Alt text](/path/to/img.jpg)

![Alt text](/path/to/img.jpg "Optional title")

规则如下:

  • 语法说明字符!开头
  • 一对方括号,包含图片的 alt 属性
  • 一对括弧包含图片的地址,还可选择性的加上图片的标题 title

引用型的图片语法如下:

![Alt text][id]

id 是图片的引用地址,其定义的语法与链接完全一致:

[id]: url/to/image  "Optional title attribute"

该表示方法没有设置图片大小的语法,如果想要设置,则可以直接食用 HTML <img> 标签。


其他


自动链接

Markdown 支持为 URL 和 email 自动生成链接。你需要做的就是用尖括号把地址括起来:

<http://example.com/>

Markdown 会将上面的句子转化为:

<a href="http://example.com/">http://example.com/</a>

email的自动链接与 URL 基本一致,不同的地方在于为了防止 email 地址被 spambots 处理,故进行了转义:

<address@example.com>

会被 Markdown 解析为:

<a href="&#x6D;&#x61;i&#x6C;&#x74;&#x6F;:&#x61;&#x64;&#x64;&#x72;&#x65;
&#115;&#115;&#64;&#101;&#120;&#x61;&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;
&#109;">&#x61;&#x64;&#x64;&#x72;&#x65;&#115;&#115;&#64;&#101;&#120;&#x61;
&#109;&#x70;&#x6C;e&#x2E;&#99;&#111;&#109;</a>

在浏览器中可以被转化为可以点击的 email 地址 “address@example.com”


转义

Markdown 语法可以使用反斜线 \ 来表示字符本身。如果想要在文字中展示 * ,则需要在 * 前加上反斜线:

\*literal asterisks\*

Markdown 支持用反斜线的字符:

\   反斜线
`   点号
*   星号
_   下划线
{}  大括号
[]  方括号
()  小括弧
#   井号
+    加号
-    减号
.   英文句号
!   感叹号